<?php
/**
 * bll app
 * @package app-member_lib_bll_member
 */
load_lib('/bll/member/base');
load_lib('/dao/member/appdao');
/**
 * bll app
 * 
 * @author pandajingjing
 * @package app-member_lib_bll_member
 */
class bll_member_app extends bll_member_base{

	/**
	 * 验证app是否合法
	 * @param string $p_strAppKey
	 * @param string $p_strAppSig
	 * @param int $p_intCallTime
	 * @param int $p_intNowTime
	 * @return boolean|string
	 */
	function chkAppValid($p_strAppKey,$p_strAppSig,$p_intCallTime,$p_intNowTime){
		$arrAppList=dao_member_appdao::getConfig('applist','app');
		if(isset($arrAppList[$p_strAppKey])){
			load_lib('/util/member');
			$strRightSig=util_member::mkAppSig($p_strAppKey,$arrAppList[$p_strAppKey],$p_intCallTime);
			if($p_strAppSig==$strRightSig){
				if($p_intNowTime-$p_intCallTime>300000){ //@todo 调整时间
					return 'Err_Logic_AppTime_TooLong';
				}else{
					return true;
				}
			}else{
				return 'Err_Logic_AppSig_Deregulation';
			}
		}else{
			return 'Sys_Error_NoApp';
		}
	}

	/**
	 * 验证请求操作是否合法
	 * @param string $p_strAppKey
	 * @param string $p_strActSig
	 * @param string $p_strReturnURL
	 * @param int $p_intCallTime
	 * @return boolean|string
	 */
	function chkActionValid($p_strAppKey,$p_strActSig,$p_strReturnURL,$p_intCallTime){
		$arrAppList=dao_member_appdao::getConfig('applist','app');
		if(isset($arrAppList[$p_strAppKey])){
			load_lib('/util/member');
			$strRightSig=util_member::mkActionSig($arrAppList[$p_strAppKey],$p_strReturnURL,$p_intCallTime);
			if($p_strActSig==$strRightSig){
				return true;
			}else{
				return 'Err_Logic_ActSig_Deregulation';
			}
		}else{
			return 'Sys_Error_NoApp';
		}
	}

	/**
	 * 返回自动登录的网站列表
	 * @param int $p_intUserID
	 * @param string $p_strUserName
	 * @param int $p_intCallTime
	 * @param array $p_arrParam
	 * @return array
	 */
	function getAutoLoginURL($p_intUserID,$p_strUserName,$p_intCallTime,$p_arrParam=array()){
		$arrAotuLoginList=dao_member_appdao::getConfig('applist','autologin');
		$arrAppList=dao_member_appdao::getConfig('applist','app');
		$arrURLList=array();
		load_lib('/util/memberurl');
		foreach($arrAotuLoginList as $strAppKey=>$arrCfg){
			$arrURLList[]=$arrCfg['prefix'].util_memberurl::getCallBackURL($arrCfg['action'],$arrAppList[$strAppKey],$p_intUserID,$p_strUserName,$p_intCallTime,$p_arrParam);
		}
		return $arrURLList;
	}
	
	/**
	 * 返回自动退出的网站列表
	 * @param int $p_intUserID
	 * @param string $p_strUserName
	 * @param int $p_intCallTime
	 * @return array
	 */
	function getAutoLogoutURL($p_intUserID,$p_strUserName,$p_intCallTime){
		$arrAotuLogoutList=dao_member_appdao::getConfig('applist','autologout');
		$arrAppList=dao_member_appdao::getConfig('applist','app');
		$arrURLList=array();
		load_lib('/util/memberurl');
		foreach($arrAotuLogoutList as $strAppKey=>$arrCfg){
			$arrURLList[]=$arrCfg['prefix'].util_memberurl::getCallBackURL($arrCfg['action'],$arrAppList[$strAppKey],$p_intUserID,$p_strUserName,$p_intCallTime);
		}
		return $arrURLList;
	}
}